package config

import (
	"database/sql"
	"fmt"
	_ "github.com/go-sql-driver/mysql" // MySQL 驱动（Manticore 兼容）
	"github.com/jmoiron/sqlx"
	"log"
	"sync"
)

var msDB *sqlx.DB   // SQL 连接实例
var once2 sync.Once // 确保初始化只执行一次的同步工具

// InitManticoreSQL 初始化 SQL 接口连接（端口 9306，MySQL 协议）
func InitManticoreSQL(props *ManticoreProperties) {
	once2.Do(func() {
		db, err := sql.Open("mysql", fmt.Sprintf("tcp(%s)/", props.Endpoint))
		if err != nil {
			log.Fatalf("create db failed: %v", err)
		}
		err = db.Ping()
		if err != nil {
			log.Fatalf("SQL connection failed: %v", err)
		}
		msDB = sqlx.NewDb(db, "mysql")
	})
}

func GetMsDB() *sqlx.DB {
	if msDB == nil {
		panic("msDB 未初始化")
	}
	return msDB
}
